組態(tài)軟件運(yùn)行時(shí)組態(tài)
運(yùn)行時(shí)組態(tài)是組態(tài)軟件新近提出的新的概念。運(yùn)行時(shí)組態(tài)是在運(yùn)行環(huán)境下對已有工程進(jìn)行修改,添加新的功能。它不同于在線組態(tài),在線組態(tài)是在工程運(yùn)行的同時(shí),進(jìn)入組態(tài)環(huán)境,在組態(tài)環(huán)境中對工程進(jìn)行修改。而運(yùn)行時(shí)組態(tài)是在運(yùn)行環(huán)境中直接修改工程。運(yùn)行時(shí)組態(tài)改變了已往必須進(jìn)入復(fù)雜的組態(tài)環(huán)境修改工程應(yīng)用的歷史,給組態(tài)軟件帶來了新的活力,并預(yù)示著組態(tài)軟件新的發(fā)展方向。
為了說明什么是運(yùn)行時(shí)組態(tài)讓我們先打個(gè)比方。我們可以將工程組態(tài)比作是建造房屋。房屋在建造前先設(shè)計(jì)好圖紙,然后按照圖紙進(jìn)行施工,工程驗(yàn)收后房屋的大小、結(jié)構(gòu)就固定下來了。交付住戶使用后,住戶自己是不能輕易改變房屋的結(jié)構(gòu)(除非他本人就是建筑師且有合法手續(xù)),更不能擴(kuò)展房屋的大小。如果對房屋進(jìn)行改造,必須請建筑師設(shè)計(jì),由建筑工人來施工。
傳統(tǒng)的組態(tài)與之類似,工程組態(tài)好并交付用戶使用后,工程中包括的功能就固定不變了。如果要擴(kuò)充、修改工程的功能,就必須請熟悉該工程的組態(tài)工程師進(jìn)入組態(tài)環(huán)境進(jìn)行修改。
如果房屋建好后,用戶能夠根據(jù)自己的需要方便的改變房間的內(nèi)部結(jié)構(gòu),或者擴(kuò)大房屋的空間,那將是多么愜意的事。假如建造師將房間的墻壁做成可移動(dòng)、可拉伸的,并且預(yù)留了制作墻壁、門窗等構(gòu)造房屋所需的機(jī)器,你就自己就可以將平房變成樓房,將樓房加高。當(dāng)然建筑師很難為你制作出這樣的設(shè)備,但是組態(tài)軟件卻可以做到這些。
組態(tài)工程師可以在構(gòu)建工程后,有預(yù)見的設(shè)計(jì)出該工程的擴(kuò)展工具。擴(kuò)展工具用來生成擴(kuò)展工程時(shí)所需的畫面、畫面中的構(gòu)件、連接的硬件設(shè)備、新的測點(diǎn)等。擴(kuò)展工具完全是跟該工程或該應(yīng)用領(lǐng)域相關(guān),工具一般只包含針對該應(yīng)用的有限的幾種部件,但是卻能夠滿足該工程以后擴(kuò)展。因?yàn)樽尲夹g(shù)人員(非組態(tài)工程師)掌握這些工具比掌握包羅萬象的開發(fā)環(huán)境要容易得多,因此用戶自己稍加指導(dǎo)就很容易完成工程的后期維護(hù)工作了。另外由于擴(kuò)展工具只提供有限的功能,讓用戶犯錯(cuò)誤的機(jī)會也就小多了。
二.運(yùn)行時(shí)組態(tài)的優(yōu)點(diǎn)
- 縮短工期。對于一具體工程項(xiàng)目,如果能將項(xiàng)目中用到的模式歸納出來,做成模板(該模板可以通過前面提到的擴(kuò)展工具運(yùn)行時(shí)生成),那么我們無須等到整個(gè)工程做完就可以將其投入運(yùn)行了。即只要工程中需要的制作工具完成后,你就可以讓最終用戶在運(yùn)行時(shí)自己增加功能了。讓用戶在運(yùn)行環(huán)境中修改和完善,直至整個(gè)工程完成。該工作模式充分發(fā)揮了組態(tài)工程師和技術(shù)工人自身的優(yōu)勢,快速完成工程項(xiàng)目。因?yàn)榻M態(tài)工程師對組態(tài)軟件熟悉,而技術(shù)工人對其應(yīng)用熟悉,讓他們分工做自己熟悉的事情,項(xiàng)目進(jìn)度當(dāng)然就快了。
- 解決了設(shè)備、畫面不確定問題。有些工程本來就存在這樣的需求。如在煤礦安全監(jiān)測中,作業(yè)現(xiàn)場具有流動(dòng)性,其監(jiān)測的設(shè)備是經(jīng)常變化的。這就要求組態(tài)軟件中的測點(diǎn)和監(jiān)視畫面根據(jù)情況不斷調(diào)整。我們不可能用常規(guī)的辦法將各種情況事先窮舉出來,也不可能每次改變都要求現(xiàn)場的技術(shù)人員進(jìn)入復(fù)雜的開發(fā)環(huán)境進(jìn)行修改。而現(xiàn)場應(yīng)用模式比較穩(wěn)定,這樣我們就易于建造其運(yùn)行時(shí)擴(kuò)展工具。運(yùn)行時(shí)組態(tài)對此是非常適用的。
- 動(dòng)態(tài)生成、精簡畫面。已往動(dòng)態(tài)場景的實(shí)現(xiàn)需要在組態(tài)環(huán)境中必須一一羅列,然后在畫面元素中加入隱藏、顯現(xiàn)動(dòng)畫,制作維護(hù)非常繁瑣。在運(yùn)行時(shí)這些元素不管用到與否都要為其分配空間,造成一定浪費(fèi)。動(dòng)態(tài)生成技術(shù)可以在需要時(shí)創(chuàng)建,不但使畫面簡化,同時(shí)也減小了系統(tǒng)開銷。
- 精簡組態(tài)環(huán)境。動(dòng)態(tài)生成點(diǎn)、畫面所使用的構(gòu)件都是與當(dāng)前應(yīng)用相關(guān)的,無關(guān)的構(gòu)件不會出現(xiàn)在運(yùn)行時(shí)的“組態(tài)”環(huán)境中。運(yùn)行時(shí)的“組態(tài)”是為具體應(yīng)用量身制作的。相對于開發(fā)環(huán)境中的組態(tài)要單一得多,工廠的技術(shù)人員也很容易掌握。這即保證了最終應(yīng)用程序的可擴(kuò)展性,又保證了運(yùn)行“組態(tài)”的簡單性、方便性。
- 維護(hù)方便。傳統(tǒng)意義的組態(tài)是在工程組態(tài)完成后,應(yīng)用程序的功能已經(jīng)固化好了。如果需要修改或增加新功能,還必須進(jìn)入開發(fā)環(huán)境重新配置。這一般需要精通開發(fā)環(huán)境,并且熟悉該工程的工程師來完成。如果工程不是本單位完成的,還要涉及到升級改造,甚至另立項(xiàng)目的費(fèi)用。動(dòng)態(tài)生成可以保證系統(tǒng)有一定程度的擴(kuò)展性,并且可以由工廠的一般技術(shù)人員來完成。
- 利于組態(tài)軟件向行業(yè)化發(fā)展。行業(yè)工程師可以針對自己的行業(yè)需求,配置運(yùn)行時(shí)所需構(gòu)件,讓普通技術(shù)人員使用,這就形成了三級應(yīng)用模式。軟件工程師集中精力開發(fā)靈活的手段,行業(yè)工程師致力于行業(yè)構(gòu)件的構(gòu)建,最終技術(shù)人員實(shí)現(xiàn)自己的應(yīng)用邏輯。三級應(yīng)用模式將大大加速組態(tài)軟件行業(yè)化進(jìn)程。
三.安全性問題。
如果在運(yùn)行時(shí)可以隨便增加、修改、刪除工程中的畫面、畫面中的元素、數(shù)據(jù)庫中的點(diǎn)。這豈不是很危險(xiǎn)嗎?是的,確實(shí)很危險(xiǎn)。如果沒有保護(hù)措施,運(yùn)行時(shí)生成就會帶來很多的麻煩。我們可以通過以下兩項(xiàng)安全措施來保護(hù)運(yùn)行時(shí)的工程。
1.系統(tǒng)保護(hù)措施:
- 只有具有特定權(quán)限的用戶才能進(jìn)行運(yùn)行時(shí)組態(tài)。
- 只有畫面的創(chuàng)建者可以修改畫面元素,其他用戶無權(quán)修改。
- 特權(quán)用戶可以在工程完善后,禁止運(yùn)行組態(tài)功能。
2.設(shè)計(jì)時(shí)保護(hù)
由于運(yùn)行時(shí)的工具是由組態(tài)工程師生成的,因此運(yùn)行時(shí)組態(tài)的自由度完全由組態(tài)工程師掌握。這就要求組態(tài)工程師對運(yùn)行時(shí)提供的手段要加以限制,不要提供過多的、不必要的靈活性,同時(shí)對修改對象提供必要的保護(hù)措施。例如提供了運(yùn)行時(shí)組態(tài)點(diǎn)的工具,就有必要對已有的點(diǎn)進(jìn)行保護(hù),同時(shí)對用戶添加的點(diǎn)的數(shù)量要進(jìn)行限制。同樣對于畫面修改也是如此,不需要運(yùn)行時(shí)修改的畫面就不要設(shè)置“運(yùn)行時(shí)編輯”權(quán)限。
總之,組態(tài)人員既要給用戶提供擴(kuò)展功能的手段,又要對其加以足夠的限制,以保證系統(tǒng)安全運(yùn)行。
四.運(yùn)行時(shí)組態(tài)的實(shí)現(xiàn)
目前,無論是國內(nèi)還是國外組態(tài)軟件對運(yùn)行時(shí)組態(tài)支持都很少,尤其是運(yùn)行時(shí)添加設(shè)備、添加變量等各家組態(tài)軟件基本沒有提供任何支持。對于支持VBA腳本的組態(tài)軟件,雖然可通過編寫程序?qū)崿F(xiàn)畫面的動(dòng)態(tài)生成,但是這畢竟是非可視化的手段。紫金橋監(jiān)控組態(tài)軟件在這方面做了初步嘗試。下面以紫金橋監(jiān)控組態(tài)軟件為例說明運(yùn)行時(shí)組態(tài)的實(shí)現(xiàn)方法。
運(yùn)行時(shí)組態(tài)包括運(yùn)行時(shí)數(shù)據(jù)庫組態(tài)和運(yùn)行時(shí)圖形組態(tài)兩部分,下面分別說明:
1.?dāng)?shù)據(jù)庫組態(tài)
運(yùn)行時(shí)數(shù)據(jù)庫組態(tài)包括:對下列內(nèi)容動(dòng)態(tài)增加、刪除和修改:
- I/O設(shè)備。
- 數(shù)據(jù)庫點(diǎn)。
- I/O連接項(xiàng),網(wǎng)絡(luò)連接。
- 歷史保存項(xiàng)。
界面中腳本支持以上操作,并且修改完上述內(nèi)容后數(shù)據(jù)庫不需要重新啟動(dòng),馬上就能生效,并且不會影響已有數(shù)據(jù)庫點(diǎn)的正常運(yùn)行。
一般的應(yīng)用中只會涉及到有限的幾種設(shè)備類型和幾種點(diǎn)類型。對于每種設(shè)備或點(diǎn)類型我們要在畫面中建立相應(yīng)的窗口,該窗口用于對I/O設(shè)備或點(diǎn)進(jìn)行維護(hù)。下面是一簡單的點(diǎn)定義窗口:
運(yùn)行時(shí)點(diǎn)組態(tài)畫面示例
2.畫面組態(tài)
運(yùn)行時(shí)加入圖形對象包括腳本創(chuàng)建對象和運(yùn)行中手工填加圖形對象兩種方式,下面分別介紹。
2.1腳本動(dòng)態(tài)生成圖形的步驟
- 定義圖形對象樣板。
- 通過下列腳本替換已有對象、增加新對象、替換對象中引用的變量。常用的腳本函數(shù)如下:
- 調(diào)用RepObj函數(shù)替換對象。
- 調(diào)用AddObj函數(shù)增加新對象。
- 調(diào)用RepVar函數(shù)替換變量。
- 調(diào)用DelObj函數(shù)刪除對象。
- 在窗口外部可以通過調(diào)用RepVarWin對選定對象進(jìn)行變量替換。
- 將修改完的畫面保存到主服務(wù)器,其他客戶端的畫面將自動(dòng)更新,這一步不是必須的,如果不需要保存到服務(wù)器,可以忽略此步。
- 運(yùn)行時(shí)切換到“編輯”模式,這時(shí)可以手動(dòng)加入、修改、刪除調(diào)整樣板對象。并可以對圖元對象中引用的變量進(jìn)行替換。
2.2運(yùn)行時(shí)手工添加圖形對象
在運(yùn)行時(shí)手工添加圖形對象相對更為靈活,其操作基本步驟如下:
- 在窗口參數(shù)中選中“允許運(yùn)行編輯”復(fù)選框。若啟動(dòng)了安全管理,那么還要指定具有“運(yùn)行時(shí)編輯畫面”權(quán)限帳戶,只有該賬戶能夠進(jìn)行動(dòng)態(tài)生成對象。
- 制作工具畫面。在該畫面中添加運(yùn)行時(shí)需要的工具,每個(gè)工具要打成子圖、單元或圖形模板,并將其置于拖拽框?qū)ο笾隆?
- 通過導(dǎo)航樹中的“畫面”選項(xiàng)卡中的“操作面板”添加工具畫面。也可以沒有該步驟。
- 在運(yùn)行時(shí),通過拖拽工具畫面中的對象,增加圖形對象。
- 保存修改,將修改內(nèi)容傳送到服務(wù)器端(此步驟不是必須的)。
運(yùn)行時(shí)手工添加的圖形對象,在組態(tài)時(shí)要預(yù)先繪制好,并加入到工具畫面中。運(yùn)行時(shí)通過拖拽方式將其繪制到相應(yīng)的畫面,然后修改其關(guān)聯(lián)變量等操作,最后保存到服務(wù)器,實(shí)現(xiàn)動(dòng)態(tài)添加圖形對象的操作。
運(yùn)行時(shí)生成畫面示例
五.發(fā)展方向
組態(tài)軟件行一般稱為通用組態(tài)軟件。“通用”一詞表示它可以適合各種應(yīng)用領(lǐng)域。不同的應(yīng)用領(lǐng)域雖然存在許多共性的東西,但是行業(yè)的差異是客觀存在的。差異表現(xiàn)在畫面的組織形式,組成部件,構(gòu)建邏輯。如果讓組態(tài)軟件能夠包羅萬象來適應(yīng)各行各業(yè),那么呈現(xiàn)給用戶的軟件將過于復(fù)雜,最終會使得組態(tài)軟件本身的友好性太差,失去其存在的意義。如前所述,運(yùn)行時(shí)動(dòng)態(tài)生成的元素是在組態(tài)環(huán)境下生成的。行業(yè)工程師可以在組態(tài)環(huán)境下構(gòu)建其應(yīng)用領(lǐng)域所需模件,然后讓專業(yè)技術(shù)人員運(yùn)用自己熟知的構(gòu)件在運(yùn)行時(shí)搭建自己的應(yīng)用。這樣就使組態(tài)軟件形成三級應(yīng)用模式:軟件工程師-行業(yè)工程師-專業(yè)技術(shù)人員。軟件工程師注重的是給行業(yè)工程師提供靈活的手段,行業(yè)工程師構(gòu)件行業(yè)模件,專業(yè)技術(shù)人員構(gòu)件最終的應(yīng)用。這才會使組態(tài)軟件深入到行業(yè),這也正式組態(tài)軟件未來發(fā)展之道。提交
紫金橋跨平臺實(shí)時(shí)數(shù)據(jù)庫發(fā)布會及入門培訓(xùn)視頻回放
紫金橋跨平臺實(shí)時(shí)數(shù)據(jù)庫入門培訓(xùn)即將開始啦
紫金橋跨平臺實(shí)時(shí)數(shù)據(jù)庫RealHistorian
紫金橋跨平臺實(shí)時(shí)數(shù)據(jù)庫新品發(fā)布會
跨平臺實(shí)時(shí)數(shù)據(jù)庫如何實(shí)現(xiàn)表格的保存和讀取